MATLAB: 使用Findobj函数获取Figure内所有axes |
您所在的位置:网站首页 › matlab figure的作用 › MATLAB: 使用Findobj函数获取Figure内所有axes |
有时候需要获取Figure里所有的axes句柄,这时候可使用Findobj函数,但需要注意,Findobj返回的axes向量里,axes的顺序是乱的。 figure tiledlayout(3,1) nexttile(1) title('Figure里的第1个axes') nexttile(2) title('Figure里的第2个axes') nexttile(3) title('Figure里的第3个axes') ax = findobj(gcf,'Type','axes'); for ii=1:length(ax) tilenum = ax(ii).Layout.Tile; disp(['findobj返回的第' num2str(ii) '个axes其实是Figure里的第' num2str(tilenum) '个axes']) ax(ii).XLabel.String = ['findobj返回的第' num2str(ii) '个axes']; end命令窗口输出为: findobj返回的第1个axes其实是Figure里的第3个axes findobj返回的第2个axes其实是Figure里的第2个axes findobj返回的第3个axes其实是Figure里的第1个axes 注意1: 上面画图时使用了tiledlayout,所以使用ax(ii).Layout.Tile查看该axes的编号,如果是subplot所生成的axes,Layout属性为空。暂时未找到subplot所生成的axes的编号怎么查看。 注意2: 本例里findobj返回的axes的顺序刚好是Figure里axes的顺序的颠倒,这种颠倒在大多数情况下是成立的,但并不总是成立,这实际上取决于每个axes(即nexttile)的画图顺序。例如:nexttile(1)、nexttile(3)、nexttile(2)的画图顺序将得到 findobj返回的第1个axes其实是Figure里的第2个axes findobj返回的第2个axes其实是Figure里的第3个axes findobj返回的第3个axes其实是Figure里的第1个axes |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |